<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>静态属性和私有属性</title>
</head>
<body>
<script>
  class Test {
    // 静态属性 通过类名调用
    static name = '静态属性'

    // 静态方法 通过类名调用
    static staticMethod() {
      console.log('静态方法')
    }

    // 私有属性和方法 只能在类的内部使用
    #privateProperty = '私有属性'

    #privateMethod() {
      console.log('私有方法')
    }

    // 使用私有属性和方法
    usePrivate() {
      console.log(this.#privateProperty)
      this.#privateMethod()
    }
  }

  // 通过类名调用静态属性和方法
  console.log(Test.name)
  Test.staticMethod()

  // 通过类的实例对象间接调用私有方法
  const test = new Test()
  test.usePrivate()
</script>
</body>
</html>